home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / tcpip_ambiguities.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  89 lines

  1. #
  2. # (C) Tenable Network Security
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #
  7. # Ref:
  8. # To: bugtraq@securityfocus.com
  9. # From: security@sco.com
  10. # Date: Mon, 5 May 2003 11:01:07 -0700
  11. # Subject: Security Update: [CSSA-2003-019.0] OpenLinux: tcp SYN with FIN 
  12. #          packets are not discarded
  13. #
  14.  
  15. if(description)
  16. {
  17.  script_id(11618);
  18.  script_bugtraq_id(7487);
  19.  script_version ("$Revision: 1.5 $");
  20.  name["english"] = "Remote host replies to SYN+FIN";
  21.  
  22.  
  23.  script_name(english:name["english"]);
  24.  
  25.  desc["english"] = "
  26. The remote host does not discard TCP SYN packets which
  27. have the FIN flag set.
  28.  
  29. Depending on the kind of firewall you are using, an
  30. attacker may use this flaw to bypass its rules.
  31.  
  32. See also : http://archives.neohapsis.com/archives/bugtraq/2002-10/0266.html
  33.            http://www.kb.cert.org/vuls/id/464113
  34.        
  35. Solution : Contact your vendor for a patch
  36. Risk factor : Medium";
  37.  
  38.  
  39.  
  40.  script_description(english:desc["english"]);
  41.  
  42.  summary["english"] = "Sends a SYN+FIN packet and expects a SYN+ACK";
  43.  
  44.  script_summary(english:summary["english"]);
  45.  
  46.  script_category(ACT_GATHER_INFO);
  47.  
  48.  
  49.  script_copyright(english:"This script is Copyright (C) 2003 Tenable Network Security",
  50.         francais:"Ce script est Copyright (C) 2003 Tenable Network Security");
  51.  family["english"] = "Firewalls";
  52.  script_family(english:family["english"]);
  53.  exit(0);
  54. }
  55.  
  56. #
  57. # The script code starts here
  58. #
  59.  
  60. # do not test this bug locally
  61.  
  62. if(islocalhost())exit(0);
  63.  
  64. port = get_host_open_port();
  65. if(!port)exit(0);
  66.  
  67. ip = forge_ip_packet(ip_hl:5, ip_v:4,   ip_off:0,
  68.                      ip_id:9, ip_tos:0, ip_p : IPPROTO_TCP,
  69.                      ip_len : 20, ip_src : this_host(),
  70.                      ip_ttl : 255);
  71.  
  72. tcp = forge_tcp_packet(ip:ip, th_sport:10004, th_dport:port, 
  73.                th_win:4096,th_seq:rand(), th_ack:0,
  74.                th_off:5, th_flags:TH_SYN|TH_FIN, th_x2:0,th_urp:0);
  75.                
  76. filter = string("tcp and src host ", get_host_ip(), " and dst host ",
  77. this_host(), " and src port ", port, " and dst port ", 10004, " and tcp[13]=18");
  78.  
  79. for(i=0;i<5;i++)
  80. {
  81.  r = send_packet(tcp, pcap_active:TRUE, pcap_timeout:1, pcap_filter:filter);
  82.  if(r)
  83.  {
  84.   # We specified a pcap filter which only returns SYN|ACK....
  85.   security_warning(0);
  86.   exit(0);
  87.  }
  88. }
  89.